Transmission of video

ABSTRACT

Compressed recorded video is to be transmitted over a variable bit-rate link, using bandwidth reservation. In order to determining the transmission rate that is to be used (and reserved) at any given time, in such a way as to make the two match so as to minimize wasted bandwidth, the data stream is split into chunks chosen such that the average bit rate for the chunk as a whole is no less that the average bit rate for any shorter chunk starting at the same point. The chunk can then be transmitted using this average rate without any buffering problems. Preferably one chooses chunks so that the average bit rate for the chunk is no less than that for any shorter or longer chunk starting at the same point. This has the benefit that a request for bandwidth never has to ask for an allocation that is higher than that specified in any previous such request. In systems that switch between streams of different degrees compression. the switching points can with advantage be chosen to coincide with the inter-chunk boundaries.

This application is the US national phase of international applicationPCT/GB2003/004996 filed 18 Nov. 2003 which designated the U.S. andclaims benefit of GB0226872.0 and GB 0322767.5, dated 18 Nov. 2002 and29 Sep. 2003, respectively, the entire content of each of which ishereby incorporated by reference.

BACKGROUND

1. Technical Field of Present Example Embodiments

The present invention is concerned with the transmission of digitallycoded video signals, for example over a telecommunications network, and,more particularly, video signals which have been encoded using acompression algorithm.

2. Description of Related Art

The rationale of compression algorithms is to exploit the inherentredundancy of the original video signal so as to reduce the number ofbits that require to be transmitted. Many such algorithms are defined ininternational standards such as the ITU H.263 and the ISO MPEGstandards. A useful review of these is given in Ghanbari, M., VideoCoding, an introduction to standard codecs, IEE, London, 1999.

The degree of redundancy naturally varies with the picture content, andconsequently the compression efficiency does too, resulting in a varyingnumber of coded bits per frame. One option is to transmit the bits asthey are generated, as in so-called variable bit rate (VBR) systems inwhich the transmitted bit rate varies considerably with time. Anotheroption—constant bit rate (CBR) systems—is to employ a buffer at both thetransmitter and receiver, to smooth out these fluctuations, and transmitfrom the transmit buffer to the receive buffer at a constant rate. CBRsystems utilise a feedback mechanism to vary the rate at which data aregenerated (for example by adjusting the coarseness of quantisation used,or frame dropping), to prevent buffer overflow. The use of bufferingnecessarily involves the introduction of delay, increasing the latencyof start (LOS)—i.e. the user has to wait while the receive buffer isfilled to the necessary level before decoding and display of thepictures can commence. The feedback mechanism involves reduction inpicture quality.

It has also been proposed to employ a degree of buffering to reduce, yetnot totally eliminate, bit-rate variations (see, for example, Furini, M.and Towsley, D. F., “Real-Time Traffic transmissions over the Internet”,IEEE Transactions on Multimedia, Vol. 3, No. 1, March 2001).

A major consideration when transmitting over a telecommunicationsnetwork, and in particular packet networks such as the internet, is theeffect of network congestion, where packet loss and unpredictable delayscan cause problems. This has given rise to proposals for reservationsystems, where a transmitter can request the network to allocate aspecified guaranteed bit rate for its transmissions for a period oftime. One such system, called “RSVP” is described in the InternetEngineering Task Force (IETF) document RFC 2205. However, other systemssuch as Expedited Forwarding of Differentiated Service, or CR-LDP mayalso be used.

In the case of a live video feed, the future characteristics of thebitstream being coded are unknown; with recorded material, however, theyare. The fact that reservation systems allow the amount of the reservedbit-rate to be changed offers the opportunity to decide on a policy ofhow much network capacity to reserve at any time, based on knowledge ofthe coded material. A simple approach is to calculate the peak (VBR,unbuffered) bit-rate and request this for the entire duration of thetransmission, but this is wasteful of network capacity and of course thehigher the capacity requested, the greater is the probability of thenetwork being unable to provide it and hence of the reservation requestbeing refused. Another simple approach, which minimises the bit-rate tobe requested, is to calculate the average bit-rate of the wholetransmission and request this; however this results in the need for avery large buffer at the receiver and, more importantly (given thatlarge amounts of storage are today relatively cheap) a large LOS. Amodification to the peak-rate approach is considered in the above-citedpaper by Furini and Towsley. Their scheme involves identifying the pointin the video sequence at which the peak rate reaches a maximum, andrequesting this rate for the period of time up to that point. Then themaximum peak rate over the remainder of sequence is located, and this(lower) rate requested. This process continues in the same manner overthe whole sequence. The paper also suggests that a degree of bufferingmight be applied, thereby reducing the effective peak rates before thereservation algorithm is applied. Although this system improves theefficiency of network use as compared with the single peak rate system,there is still much wasted (i.e. reserved but unused) network capacity,and of course the benefit is small if the maximum peak rate occurstowards the end of the sequence. It does however have the benefit thatthe amount of network capacity requested falls, and, specifically, areservation request never asks for a bit-rate that exceeds that of theprevious requests, thereby reducing the risk of the reservation requestbeing refused.

BRIEF SUMMARY OF EXAMPLE EMBODIMENTS OF THE INVENTION

According to one aspect of the present invention there is provided amethod of transmitting a digital sequence of video signals which havebeen encoded using a compression algorithm such that the number of codedbits per frame is not constant, comprising:

(a) dividing the sequence into segments, wherein the first segment is aportion at the beginning of the sequence which has an average number ofcoded bits per frame which is greater than or equal to the averagenumber of coded bits per frame of any shorter such portion, and whereineach succeeding segment is a portion immediately following the precedingsegment which has an average number of coded bits per frame which isgreater than or equal to the average number of coded bits per frame ofany shorter such portion;(b) determining a bit rate for each segment;(c) transmitting the signals at the determined bit rates.

In another aspect, the present invention provides a method oftransmitting a digital sequence of video signals which have been encodedusing a compression algorithm such that the number of coded bits perframe is not constant, wherein the source video had been coded into afirst sequence and a second sequence having respective differentcompression rates, comprising:

-   -   (a) analysing at least one of the streams to divide it into        segments;    -   (b) selecting a switching point in the vicinity of an        intersegment transition identified at step (a);    -   (c) if the first sequence was not analysed in step (a),        analysing the first sequence to divide it into segments;    -   (d) determining a bit rate for the or each segment of the first        sequence up to the switching point;    -   (e) transmitting the signal of the first sequence up to the        switching point at the determined bit rate(s);    -   (f) analysing a modified sequence which includes the second        sequence from the switching point onwards, to divide it into        segments;    -   (g) determining a bit rate for segments of the modified        sequence;    -   (h) transmitting the signals of the modified sequence at the        determined bit rate(s);        wherein said analyses are each performed by dividing the        relevant sequence into segments, wherein the first segment is a        portion at the beginning of the sequence which has an average        number of coded bits per frame which is greater than or equal to        the average number of coded bits per frame of any shorter such        portion, and wherein each succeeding segment is a portion        immediately following the preceding segment which has an average        number of coded bits per frame which is greater than or equal to        the average number of coded bits per frame of any shorter such        portion.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments of the invention will now be described, by way ofexample, with reference to the accompanying drawings, in which:

FIGS. 1A to 3C show graphically the results of tests carried out;

FIG. 4 is a block diagram of one form of apparatus for implementing theinvention;

FIG. 5 is a flowchart illustrating the operation of the apparatus ofFIG. 4; and

FIGS. 6 to 10 are graphs showing the results of further tests.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Consider, at a receiver, some arbitrary time segment (but equal to awhole number of frame periods), extending from time t_(g) at which thereceiver begins to decode frame g to time t_(h) at which the receiverbegins to decode frame h. The duration of this segment is h−g. Suppose,further, that the transmission rate during this segment is A bits/frameperiod.

Obviously, at time t_(g), the receiver must have already received thebits for all frames up to and including frame g, i.e.

$\sum\limits_{j = 0}^{g}{d_{j}\mspace{14mu}{bits}}$where d_(j) is the number of coded bits generated by the encoder forframe j.

Suppose however that the receiver has, prior to time g, also received padditional bits, that is, in total,

${\sum\limits_{j = 0}^{g}d_{j}}\; + {p\mspace{14mu}{{bits}.}}$

At any time t_(k) (t_(g)≦t_(k)≦t_(h)), at which the receiver begins todecode frame k, the receiver has also received (k−g)A bits, so:

Total bits received at time

$t_{k} = {{\sum\limits_{j = 0}^{g}d_{j}} + p + {\left( {k - g} \right){A.}}}$

At this point, the receiver needs to have all the bits for frames up toand including frame k, that is:

Total bits needed at time

$t_{k} = {\sum\limits_{j = 0}^{k}{d_{j}.}}$

Since the number of bits received must be at least equal to the numberneeded, the condition that needs to be satisfied to avoid bufferunderflow is

${{\sum\limits_{j = 0}^{g}d_{j}} + p + {\left( {k - g} \right)A}} \geq {\sum\limits_{j = 0}^{k}d_{j}}$${{{Or}\mspace{14mu} p} + {\left( {k - g} \right)A}} \geq {\sum\limits_{j = {g + 1}}^{k}d_{j}}$

If this is to be achieved without the transmission of preload bits p,this requires that

${\left( {k - g} \right)A} \geq {\sum\limits_{j = {g + 1}}^{k}d_{j}}$${Or},\;{A \geq {\frac{1}{\left( {k - g} \right)}{\sum\limits_{j = {g + 1}}^{k}{d_{j}.}}}}$

Thus, the transmitted rate A must be greater than or equal to theaverage generated bits per frame over frames g+1 to k, for any value ofk (g+1≦k≦h), which will be achieved if

${A \geq} = {\underset{k = {g + 1}}{\max\limits^{h}}{\left\{ {\frac{1}{\left( {k - g} \right)}{\sum\limits_{j = {g + 1}}^{k}d_{j}}} \right\}.}}$

Use of this rate means that the number of bits (h−g)A transmitted duringthe segment will exceed the number of bits generated for the segment,unless the maximum occurs for k=h, that is, at the end of the segment.On the premise that the continued use of the transmission rate thuscalculated, after the maximum has passed, seems to represent the use ofa rate higher than absolutely necessary, the first version of theinvention now to be described aims to partition the data to betransmitted into segments in such a manner that these maxima alwaysoccur at the end of segment.

The first method to be described is for the transmission of stored videomaterial, already encoded using a compression algorithm such as MPEG,over a packet network such as the internet. It presupposes that thenetwork has provision for reservation of bit-rate capacity. It aims todetermine the bit-rate that is to be used as a function of time, in sucha manner as to achieve:

-   -   small latency of start;    -   low transmitted bit-rate; and    -   high transmission efficiency (i.e. low wastage);        although since these are conflicting requirements, any solution        must necessarily be a compromise.

In this example it is assumed that there is no constraint on the bitrate that may be chosen, and that the bit rate used for transmission andthe bit rate reserved on the network are the same.

This first version also is subject to the constraint that the requestedbit-rate can never increase—i.e. it is a monotonically decreasingfunction of time: as noted above, this is desirable in reducing the riskof reservation failure.

Since huge storage hardware is not a problem for current users, in thissolution, reducing the required buffer size at the decoder is not ofprimary concern, though, in fact, the required buffer size resultingfrom this method is also greatly reduced compared with using the averagebit rate to achieve VBR video transmission. Even in the worst case,rarely encountered in practice, the buffer size required would be nolarger than required when transmitting a VBR video stream at the averagebit rate.

The following algorithm determines a “function of transmission (“FOT”)to be used.

We assume there are N frames in the video sequence, and the number ofencoded bits for each frame is d₀, d₁, . . . d_(N-1), respectively

As noted above, this algorithm is subject to the constraint that thefunction of transmission can never increase, but only decrease.

Conceptually, transmission rate changes can occur at any frame intervalin the FOT. In practice, there may be a limit on how often the rate maybe changed, depending on the constraints of the particular reservationsystem in use; however, with a monotonically decreasing FOT, a delay inrate change (although wasteful of network capacity), will not result inany loss of quality since its only effect is the reservation of morecapacity than is actually needed. The first step of the algorithm is tofind how many “steps” the FOT will have, and when each step occurs.

First, we define:

$A_{i} = \frac{\sum\limits_{j = 0}^{i}d_{j}}{\left( {i + 1} \right)}$

-   -   which represents the average bit rate of the video sequence from        the start up to and including frame i. Then, A₀, A₁, . . .        A_(N-1) are calculated, and from these the value of i having the        largest A_(i). Suppose this value is k₀. The first “step” edge        is defined as occurring at the end of frame k₀. It means that,        until the end of frame k₀, FOT needs its highest transmission        rate.

After finding the first “step”, frame (k₀+1) is regarded as the “first”frame for the following frames and A_(i+1) ⁽¹⁾ are calculated fori=k₀+1, k₀+2, . . . N−1. The formula for this is

$A_{i}^{(1)} = \frac{\sum\limits_{j = {k_{0} + 1}}^{i}d_{j}}{\left( {i + k_{0}} \right)}$or, in the general case,

$A_{i}^{(q)} = \frac{\sum\limits_{j = {k_{q - 1} + 1}}^{i}d_{j}}{\left( {i - k_{q - 1}} \right)}$

Again, the largest value is chosen as the second “step” edge, at the endof frame k₁, k₁ being the corresponding value of i. The above procedureis repeated until the last “step” edge at frame N−1 has been reached. Ingeneral this results in M values k_(m), m=0, . . . M−1 (where k_(M-1) isalways equal to N−1) which may be regarded as dividing the videosequence into M−1 segments: segment 0 comprises frames 0 to k₀; othersegments m each comprise frames k_(m−1)+1 to k_(m).

The purpose of the second stage of the algorithm is to choose anappropriate transmission rate for the “level” of each “step”. Now,theoretically, the lowest rate that can ensure that all needed bits willbe delivered by the end of each “step” even without any preloaded bitsis the average of the bit-rates of the frames making up the segment. Alower rate necessarily requires preloaded bits and consequently a higherLOS, whilst with higher rates, network capacity may be wasted. Also,higher rates must lead to more risk of failure to reserve resource.

There are M segments m=0, 1, . . . M−1. Also, we define:

-   -   S_(i) is the sum of bits generated in Segment i—i.e.

${\sum\limits_{q = {k_{l - 1} + 1}}^{k_{l}}d_{q}};$

-   -   R_(i) is the transmission rate of FOT in Segment i; (note that        K₀=k₀+1)    -   K_(i) is the number of frames in Segment i—i.e. k_(i)−k_(i−1);

In this case the required rates are simply the average ratesR_(i)=S_(i)/K_(i); i=1, 2, . . . M−1.

This method can also be used to calculate the rate R₀ for Segment 0, ifwe define k⁻¹=−1.

Note that, in MPEG video coding, the first frame is always an I frameand it generates more bits than P or B frames. So, often, our resultsshow the first segment includes only one frame and the transmission rateR₀ is much larger than R₁. Since users easily can wait a few frames'interval to have a better chance of resource reservation success, weprefer to set R₀=R₁.

The Third Step: After we have determined the whole FOT, the requiredbuffer size at the decoder can be determined.

We now describe a second, modified version which is subject to aconstraint on the rates that may be chosen. For example the constraintmay be that the rate must be an integer number of bits per frame, ormore generally that the rate must be one of a number of discrete rates.In analysis we will use the quantisation operators defined as follows:

Q⁺(X) means the lowest permitted rate greater than or equal to X (alsoreferred to as the “ceiling” rate);

Q⁻(X) means the highest permitted rate less than or equal to X (alsoreferred to as the “floor” rate).

Two options will be discussed:

-   -   (a) rounding up to the ceiling rate: in this case the rate used        can become higher than strictly necessary for a particular        segment, which may offer the opportunity to use a lower rate for        the following segment;    -   (b) rounding down to the floor rate: in this case the rate used        can become lower than necessary for a particular segment,        resulting in the need to use a higher rate for the preceding        segment.

Consider first the ceiling option. We first define the ceiling value ofthe “height” of the first “step” in the original FOT as the “height” ofthe refined first “step” in our new FOT. It will be noticed that, inthis way, after the first “step”, more bits have been transmitted to thereceiver than the sum of bits of frames belonging to the “first” step.Thus, when we refine the second “step”, we should exclude the number ofbit belonging to the following “step” but having been transmitted in theprevious “step(s)” and recalculate the average rate of the second“step”. If the ceiling value of the new average bit rate is not lessthan the ceiling value of the average rate of the old third “step”, itis just defined it as the “height” of the refined second “step”.Otherwise, we define the ceiling value of the average bit rate of theold third “step” as the “height” of the refined second “step”. Followthis procedure until the “height” of the refined last “step” is fixed.Since it always takes the ceiling value of each “step”, it is possiblethat the VBR video stream transmission is achieved a few frame intervalsshorter than the duration of the video sequence. With simulating thetransmission based on the new FOT, the lifetime duration of FOT can beexactly specified. Once the VBR video stream transmission is achieved,reserved network resource can be immediately released. Thus, the 100%bandwidth utilization is still guaranteed. With the “height” of therefined first “step”, LOS can be precisely recalculated. Finally,through simulating the transmission procedure, the required buffer sizeto prevent overflow can be also fixed.

The procedure adopted is as follows. Division into segments proceeds asbefore.

As well as the quantities S_(i), R_(i), K_(i), defined above, we alsointroduce R¹ _(i), a temporary value for the transmission rate inSegment i.

I. Calculate all the average rates R¹ _(i)=S_(i)/K_(i); 1=0, 1, . . .M−1.

II. Set the rate for Segment 0 as R₀=Q⁺(R¹ ₀)

(Note that if as discussed earlier it is desired to use a lower rate forthe first Segment, then one may instead begin with Segment 1)

III. Set the rate for Segment 1 by subtracting, before quantisation, theextra bits sent during the previous Segment:R ₁ =Q ⁺ {R ₁ ¹−(R ₀ −R ₀ ¹)}or =Q ⁺ {R ₂ ¹}whichever is the greater.

IV. For the remaining Segments i=2, . . . M−1:R _(i) =Q ⁺ {R _(i) ¹−(R _(i−1) −R _(i−1) ¹)}or =Q ⁺ {R _(i+1) ¹}whichever is the greater. Naturally the second alternative does notarise for i=M−1.

The third version to be described uses the “floor” rates. In this case,the processing must be performed in reverse order, starting from thelast “step”. This is necessary so that the bits which cannot betransmitted in a particular segment can be pre-transmitted in theprevious Segments. The specific procedure first defines the floor valueof the average bit rate of the last “step” as the new transmission rateof the refined last “step” in the new FOT. The number of bits which areneeded by the refined last “step” but cannot be transmitted, can then bedetermined. The previous “step(s)” should guarantee such a number ofextra bits transmitted before the new last “step” FOT starts. Thus, whenwe refine the penultimate “step”, we must aim for it to carry the bitsit needs itself, plus the extra number of bits needed by the last“step”. So, a new average bit rate has to be re calculated for thesecond last “step”. If the floor of the new average bit rate of thesecond last “step” is not bigger than the floor of the average rate ofthe third last “step” in original FOT, just define it as the “height” ofthe new second last “step”. Otherwise, define the floor of the averagebit rate of the old third last “step” as the “height” of the new secondlast “step”. Following this procedure until the first “step”, therefinement is achieved and the refined FOT is obtained. As in theceiling case: with the number of the pre-fetched bits and the “height”of the refined first “step”, LOS can be precisely recalculated; finally,through simulating the transmission procedure, the required buffer sizeto prevent overflow can be also fixed.

As before, there are M segments m=0, 1, . . . M−1. Also, we define:

-   -   S_(i) is the sum of bits generated in Segment i—i.e.

${\sum\limits_{q = {k_{l - 1} + 1}}^{k_{l}}d_{q}};$

-   -   R_(i) is the transmission rate of FOT in Segment i;    -   K_(i) is the number of frames in Segment i—i.e. k_(i)−k_(i−1);    -   R¹ _(i) is a temporary transmission rate we assume in Segment i.

I. Calculate all the average rates R¹ _(i)=S_(i)/K_(i); i=1, 2, . . .M−1.

II. Set the transmission rate R_(M-1) for Segment M−1 equal to the floorvalue of the average rate for this segment. That isR _(M-1) =Q ⁻ {R ¹ _(M-1)}.

II. Compute the number of preloaded bits, P_(M-1), that are needed to bepresent in the receiver buffer at the beginning of Segment M−1 toprevent underflow in Segment M−1.P _(M-1)=(R ¹ _(M-1) −R _(M-1))*K _(M-1)

III. The rate for the next segment can then be calculated asR _(M-2) =Q ⁻ {R _(M-1) ¹ +P _(M-1)}or =Q ⁻ {R _(M-3) ¹}

-   -   whichever is the lower.        with        P _(M-2)=(R ¹ _(M-2) −R _(M-2))*K _(M-2)

IV. This process is then repeated using the general formula, m=M−3, . .. , 0:R _(m) =Q ⁻ {R _(m) ¹ +P _(m+1)}or =Q ⁻ {R _(m−1) ¹}whichever is the lower.AndP _(m) =R ¹ _(m) −R _(m).

Again, if desired this iteration may be stopped at m=1 and R₁ used forSegment 0.

This process results in a value for P₀ which is a preload for the firstSegment, and will need to be transmitted first. In fact, it isconvenient to define a preload b₀ which includes all bits that aretransmitted before the receiver starts decoding the first frame at t=0.

Assuming that R₀ is calculated as above, thanb ₀ =P ₀ +R ₀

If, however the rate R₁ is used for Segment 0, then only (K₀−1)R₁ bitscan be transmitted between t=0 and the end of the segment and thereforethe total preload is:P ₀ +K ₀ R ₀−(K ₀−1)R ₁

The latency of start (LOS) is, assuming R₁ is used, b₀/R₁.

The question of buffer size will now be discussed. Certainly, with ourFOT, we can get reasonable transmission rate and LOS. The networktransmission efficiency can be almost 100%, and it requires a smallerbuffer size than the directly using fixed average rate bandwidth.However, in some situations, it is still much bigger than it required byreserving the peak rate bandwidth. In the scheme of reserving the peakrate bandwidth, it is enough if the buffer size at the decoder is onlyas much as the number of bits spent on the most complicated frame.However, in our scheme, we do need a larger buffer than that. Although,compared with a constant average bit rate, our scheme can get a muchsmaller buffer size in most situations, it should be admitted that, inthe worst situation, the buffer size required by our scheme is near thebuffer size required by a constant average bit rate. Such a situationhappens when the biggest A_(i) appears in the last frames of the videosequence. In such a situation, our “down stairs” curve almost has onlyone “step”. Thus, it would be not effective enough to minimise thebuffer size through the “step” changes. Nevertheless, such a situationhardly appears because, the later the “peak bits” appears, the lesseffect on A_(i). Unless, at the end of the sequence, quite a fewexceptional complicated frames appear abnormally, it will never happen.No matter what situation happens, LOS will never be a problem with ourscheme. We believe, currently, it should not be a problem for the userto have some hardware that has a little large storage. A small LOS andgood network transmission efficiency should cause more concern by theusers.

In addition, even if users cannot afford a large buffer size our schemerequires, a compromise may be taken between the transmission efficiencyand required buffer size at the decoder. With such a compromise, therequired buffer size can be further reduced as the users wish.

Incidentally, although our current algorithm description is only basedon bits per frame as a basic unit, naturally, the unit can be defined asa GOP or certain number of pictures or packets together. No matter whatunit we would like to define in this algorithm, the principle is generaland should be in common.

We now describe some examples of coding test video sequences, using the“floor” method. In each case the values of the function of transmissionf(t) (or R_(i)), the value of b₀, and a suggested rate for transmissionof b₀ are given, (a) for the above algorithm (b) using the method ofFurini and Towsley, and (c) using a single, average bit rate.

Example 1 “JacknBox”

(a) We have coded a test sequence (named Jacknbox) of commonintermediate format (CIF), 140 frames in duration with a fixed quantiserof step size 16 using H.263+ and derived the FOT function with ouralgorithm.

f(t)=

5100 0 < t <= T₄₈; 3645 T₄₈ < t <= T₅₁; 3058 T₅₁ < t <= T₅₂; 2830 T₅₂ <t <= T₆₁; 2682 T₆₁ < t <= T₇₀; 2651 T₇₀ < t <= T₇₁; 2464 T₇₁ < t <= T₉₀;2447 T₉₀ < t <= T₁₀₈; 2321 T₁₀₈ < t.

-   -   In this document, we define T_(i) as the time when the decoder        displays Frame i.

We define the measure unit of all measurement rates in this document asbits per frame interval.

b₀=39824 bits; suggested transmission rate for b_(0:) 5100 bits perframe interval

(b) Using Furini and Towsley's method, we get

f(t)=

9896 T₀ < t <= T₂₉; 9432 T₂₉ < t <= T₄₀; 7272 T₄₀ < t <= T₄₁; 6552 T₄₁ <t <= T₄₆; 6184 T₄₆ < t <= T₄₇; 5328 T₄₇ < t <= T₄₈; 3696 T₄₈ < t <= T₅₁;3632 T₅₁ < t <= T₁₀₆; 3552 T₁₀₆ < t <= T₁₃₈; 2896 T₁₃₈ < t.

b₀=39824 bits

In their transmission scheme, b₀ would be achieved by 39824 bits perframe interval.

(c) With a constant average bit rate, the function would be:

f(t)=3669.

b₀=108488 bits;

b₀ is achieved by 3669 bits per frame interval.

FIG. 1 shows these results plotted graphically.

The analysis results are listed in Table 1:

TABLE 1 JacknBox 140 frame, H.263+ (c) Fixed bandwidth channel with (b)Furini & Schemes average bit rate (a) Our scheme Towsley Bandwidth 100100 63.46 utilization (%) The Start 3,669 5,100 39,824 Reservation Rate(bits/per frame interval) LOS(frames) 108488/3669 = 29.57 39824/5100 =39824/39824 = 1 7.8 Buffer 108,488 60,336 39,824 Size(bits)

We have also encoded the same video sequence with a CBR rate control. Inthis case, the LOS would be 29656/3735=7.94 frames. However, 10 framesare skipped with the normal CBR rate control and the bits budget we giveis the same as the average number of bits in VBR encoding.

Example 2 8400 Frames' TV Programme Using H.263+

This test used a normal TV programme QCIF (quarter-CIF) sequence with8400 frames, coded with a fixed Quantiser step size of 16 using H.263+.The picture type is IPPPP . . . with forced updating every 132 frames inthe H.263+ recommendation.

(a) f(t)=

4977 T₀ < t <= T₃₁₇₃; 4218 T₃₁₇₃ < t <= T₃₆₇₉; 3968 T₃₆₇₉ < t <= T₃₆₈₀;3848 T₃₆₈₀ < t <= T₃₆₈₁; 3844 T₃₆₈₁ < t <= T₄₇₅₂; 3090 T₄₇₅₂ < t <=T₈₃₉₂; 992 T₈₃₉₂ < t <= T₈₃₉₃; 816 T₈₃₉₃ < t <= T₈₃₉₄; 644 T₈₃₉₄ < t <=T₈₃₉₆; 544 T₈₃₉₆ < t <= T₈₃₉₇; 384 t > T₈₃₉₇;

b₀=13944 bits;

As previously, b₀ may be achieved by the first rate of 4977 bits perframe interval.

(b) f(x)=

27672 T₀ < t <= T₈₃₃₉; 26704 T₈₃₃₉ < t <= T₈₃₄₀; 26560 T₈₃₄₀ < t <=T₈₃₄₁; 26488 T₈₃₄₁ < t <= T₈₃₄₂; 26240 T₈₃₄₂ < t <= T₈₃₄₄; 25832 T₈₃₄₄ <t <= T₈₃₄₅; 25136 T₈₃₄₅ < t <= T₈₃₄₆; 24168 T₈₃₄₆ < t <= T₈₃₄₇; 23816T₈₃₄₇ < t <= T₈₃₅₂; 23760 T₈₃₅₂ < t <= T₈₃₅₃; 23616 T₈₃₅₃ < t <= T₈₃₅₆;22824 T₈₃₅₆ < t <= T₈₃₅₇; 22528 T₈₃₅₇ < t <= T₈₃₅₈; 21952 T₈₃₅₈ < t <=T₈₃₅₉; 21744 T₈₃₅₉ < t <= T₈₃₆₉; 20448 T₈₃₆₉ < t <= T₈₃₇₃; 20344 T₈₃₇₃ <t <= T₈₃₈₄; 19960 T₈₃₈₄ < t <= T₈₃₈₅; 19016 T₈₃₈₅ < t <= T₈₃₉₁; 11656T₈₃₉₁ < t <= T₈₃₉₂; 992 T₈₃₉₂ < t <= T₈₃₉₃; 816 T₈₃₉₃ < t <= T₈₃₉₄; 648T₈₃₉₄ < t <= T₈₃₉₆; 544 T₈₃₉₆ < t <= T₈₃₉₇; 384 T₈₃₉₇ < t <= T₈₃₉₉.

b₀=13944 bits;

b₀ may be transmitted at 29762 bits per frame interval.

(c) With a constant average bit rate, FOT would be:

f(t)=3966.

b₀=3348584 bits;

b₀ may be set at 3669 bits per frame interval.

FIG. 2 shows these FOT curves for 8400 frames' TV programme with H.263+.

The analysis results are listed in Table 2:

TABLE 2 8400 frames H.263+ (c) Fixed bandwidth channel with (a) Our (b)Furini & Schemes average bit rate scheme Towsley Bandwidth 100 100 14.36utilization (%) The Start 3,966 4,977 27,672 Reservation Rate (bits/perframe interval) LOS 3348584/3966 = 13944/4977 = 13944/27672 = 0.5 (frame844.322 2.8 interval) Buffer Size 6,116,362 3,908,218 27,672 (bits)

Example 3 8400 Frames' TV QCIF Programme Coded with MPEG4

The same TV programme QCIF sequence of 8400 frames was coded usingMPEG4, with a fixed Quantiser step size of 10. The picture type isIBBPBBPBBPBB (N=12, M=3). It should be noted that, with B pictures, theencoding sequence of pictures is different from the displaying sequenceof pictures. So the related I or P pictures must be transmitted prior tothe B picture.

Some pre-processing is needed before using our algorithm.

(a) Finally, our FOT is:

-   -   f(t)=

7426 T₀ < t <= T₄₇₅₀; 6938 T₄₇₅₀ < t <= T₄₇₈₆; 66470 T₄₇₈₆ < t <= T₄₇₉₈;6309 T₄₇₉₈ < t <= T₄₈₇₀; 6190 T₄₈₇₀ < t <= T₄₉₀₀; 6083 T₄₉₀₀ < t <=T₄₉₁₈; 6026 T₄₉₁₈ < t <= T₈₃₉₈; 168 T₈₃₉₈ < t.

b₀=16548 bits;

b₀ can be sent using 7426 bits per frame interval.

(b) f(x)=

57472 T₀ < t <= T₈₃₃₈; 50616 T₈₃₃₈ < t <= T₈₃₅₀; 49504 T₈₃₅₀ < t <=T₈₃₆₈; 48608 T₈₃₆₈ < t <= T₈₃₇₁; 48536 T₈₃₇₁ < t <= T₈₃₈₃; 44968 T₈₃₈₃ <t <= T₈₃₈₆; 31752 T₈₃₈₆ < t <= T₈₃₈₉; 28696 T₈₃₈₉ < t <= T₈₃₉₈; 168T₈₃₉₈ < t.

b₀=16040 bits;

b₀ may be set at 57472 bits per frame interval.

(c) With a constant average bit rate, FOT would be:

f(x)=6825.

b₀=2874758 bits;

b₀ may be set at 6825 bits per frame interval.

FIG. 3 shows these FOT curves for 8400 frames' TV programme with MPEG4(N=12, M=3).

The analysis results are listed in Table 3:

TABLE 3 8400 frames, MPEG4 (c) Fixed bandwidth channel with average (a)Our (b) Furini & Schemes bit rate scheme Towsley Bandwidth 100 10011.897 utilization (%) The Start 6,825 7,426 57,472 Reservation Rate(bits/per frame interval) LOS (frames) 2874758/6825 = 16548/7426 =16040/57472 = 421.21 2.228 0.279 Buffer Size 6,236,252 3,997,072 57,472(bits)

From the above experimental results, it can be seen that LOS has beengreatly reduced while we still keep 100% transmission efficiency. Nonetwork resource has been wasted. The only thing still can be furtherimproved is to further minimise the required buffer size at the decoder.

FIG. 4 is a block diagram of a server operable in accordance with theinvention. It contains the usual computer components, that is aprocessor 10, memory 11, a disc store 12, keyboard 13, a display 14, anda network interface 15 for connection to a telecommunications network16. Video sequences available to be transmitted are stored in the discstore 12 in a conventional manner in the form of encoded files 20.

Also stored in the disc store 12 is a computer program 21 forimplementing controlling the operation of the server. The operation ofthis program, using the “floor” method, will now be described withreference to the flowchart shown in FIG. 5.

Step 100

A request is received via the interface 15 from a remote terminal fortransmission of a desired video sequence; such a request includes thefilename of that one of the files 20 containing that sequence.

Step 101

The processor 10 reads the file in question from the disc store 12 anddetermines the number of coded bits d_(j) in the file for each of the Nframes in the stored sequence, and stores the value of N and d_(j) (j=0. . . N−1) in the memory 11.

Step 102

The processor calculates k_(O) . . . k_(M-1) as described above andstores M and k_(O) . . . k_(M-1) in the memory 11.

Step 103 Calculate R¹ _(i)=for all i

Step 104 Set R_(M-1)=_(Q) ⁻ {R¹ _(M-1)} and Compute P_(M-1)

Step 106 Set a pointer m=M−2

Step 107 Compute R_(m) and P_(m)

Step 109 Decrement m. If m≧0, go to step 107

Step 111 Compute b₀=P₀+R₀

Step 112 Compute the segment durations—in this implementation thepreload and segment 0 are regarded as a single segment for transmissionpurposes. Thusτ₀=(b ₀ /R ₀ +k ₀+1)*ττ_(i)=(k _(i) −k _(i−1))*τ i=1 . . . M−1where τ is the length of a frame period.

Step 113 Set i to 0

Step 114 Transmit a reservation request specifying a rate of R_(i) and aduration of at least τ_(i).

Step 115 Transmit Segment i at rate R_(i) (preceded, when i=0, by P₀preload bits).

Step 116. If all segments have been transmitted, stop; otherwise,increment i at 117 and go to step 114.

Some reservation systems, such as the RSVP system mentioned earlier, inorder to accommodate multicasting, require that a reservation request beissued by the receiving terminal. In such a case step 113 would bemodified to specify the transmission of a message to the receivingterminal specifying R_(i) and τ_(i). Whereupon the terminal wouldtransmit the required reservation request to the network.

In some networks, it may be that there is some constraint on the timesat which the reserved rate may be changed. However the approach adoptedabove is robust to such problems because every reservation requestexcept the first requests a lower rate than before. It follows thatdelay in processing such requests results in the reserved rate remaininghigh after the actual transmitting rate has been reduced. In this casethe efficiency of network utilisation falls, but the transmissionquality is unaffected.

The reservation algorithm described above is built upon the constraintthat the reserved bit rate must never be increased. This is not howeveressential, so a second embodiment of the invention which is not subjectto this constraint will now be described.

In the case, each segment is chosen in such a manner that, as before,the average generated bit rate Σd_(j) for the segment is greater than orequal to the average for any shorter part of the video sequencebeginning at the start of that segment, but, now, may be less than theaverage for some longer part starting at the same point.

The procedure will be described for the general segment q (=0 . . . M−1)

Using

$A_{i}^{(q)} = \frac{\sum\limits_{j = {k_{q - 1} + 1}}^{i}d_{j}}{i - k_{q - 1}}$calculate A_(i) ^((q)) for all k_(q-1)+1≦i≦k_(q-1)+H (or k_(q-1)+1≦i≦N−1if this is shorter)where H is some defined maximum length that is to be permitted.

Find the value of i for which A_(i) ^((q)) is largest, and set k_(q)equal to this value of i.

This is the same as the previously described procedure, except that thesearch for the maximum average rate is restricted in its range.

Once k_(q) (q=0, . . . , M−1) have been determined, the actualtransmission rates can be determined exactly as described above exceptthat any limits defined to prevent a rate from exceeding that of thepreceding segment, or from falling below that of the following one, areomitted.

A second embodiment of the invention explores the possibility of videorate switching. Here, two (or more) video streams are generated, withdifferent picture qualities and hence different data rates. Typically,these may be generated by using different coarsenesses ofquantisation—i.e. the low-quality, low data rate stream uses a coarsequantiser and a higher-quality stream, having a higher data rate, uses aless coarse quantiser.

The possibility of video rate-switching is of particular interest in thepresent context where perhaps rate reservation failure occurs at thebeginning of a transmission, and the situation can be remedied byfirstly sending a relatively poor quality stream, and later switching toa higher quality stream when the nature of the signal and/or networkconditions allow it. However, the system to be described is also usefulwhere video rate-switching is used for some other reason.

When inter-frame coding is in use, switching between two differentstreams can cause serious corruption of the picture due to mistrackingof predictors at the coder and decoder: however, switching may beaccommodated without such degradation of picture quality by generating,from time to time, transitional coded frames which essentially code upthe difference between a frame of the stream that is to be switched toand a frame of the stream that is to be switched from. So transmissionof frames from a first stream is followed by one of more transitionalframes and then by frames from the second stream. The generation of suchtransitional frames is not new and will not be described further. For adescriptions of such a system, see our international patent applicationWO 98/26604 (and corresponding U.S. Pat. No. 6,002,440). Another suchsystem, using so-called “SP-frames” is described in Marta Karczewicz andRagip Kurceren, “A Proposal for SP-frames”, document VCEG-L-27, ITU-TVideo Coding Experts Group Meeting, Eibsee, Germany, 9-12 Jan. 2001, andRagip Kurceren and Marta Karczewicz. “SP-frame demonstrations”, documentVCEG-N42, ITU-T Video Coding Experts Group Meeting, Santa Barbara,Calif., USA, 24-27 Sep. 2001.

In the context of the “FOT” approach described above, the question ofswitching between two streams presents some questions that need to beaddressed. If one considers switching at an arbitrary point in time froma first stream to a second stream, then in general the decoder bufferwill contain frames of the first stream, which are not useful fordecoding the second stream. Thus, assuming that the decoder is toimmediately switch to decoding of the second stream, these frames willbe unused and represent wasted transmission capacity. Worse, framesneeded for decoding of the second stream will not be present in thebuffer. Theoretically this can be accommodated if the FOT for the secondstream is recalculated, considering the beginning of the part of thesecond stream that is actually to be transmitted to be the start of thestream, but in practice this can result in a prohibitively hightransmitted data rate requirement if interruption of the displayedpictures is to be avoided.

The problem of wasted bits can be avoided by allowing the decoder tocontinue to decode the frames of the first stream that remain in thebuffer, and during this period the buffer might accumulate some of theframes that are needed for decoding of the second stream (i.e.transitional frame(s) and frames of the second stream) but neverthelessthe danger of an excessive transmitted bit-rate requirement remains.

Ideally, bitstream switching should occur as soon as available bandwidthappears. However, owing to the problems just discussed, this is notpractical. Also, if transitional frames—which normally are generatedonly at selected points rather than for every frame—are to be generatedthen the points (the switching points) at which these are to be providedshould preferably be planned in advance.

Based on such considerations, we first consider the possibility ofswitching at times which coincide with the “edge” of a “step” of theFOT. It is a characteristic of this scheme that, at the “edge” of each“step”, the receiver buffer stores no bits, as all transmitted bits havebeen decoded into pictures. Thus, if one were to switch at the “edge” ofthe original stream, all transmitted bits would be emptied from thereceiver buffer and no bits would be wasted due to the bitstreamswitching.

Although setting switching points at the “step edges” of the originalbit stream may waste no transmitted bits, there would be still a problemif the switching point in the new stream were not at a “step edge”. Thereason is that if the switching point is not at a “step edge” in the newstream, some pre-accumulated bits for the new stream might have to betransmitted within a very short space of time in order to play videocontinuously at the receiver. It might lead a much higher ratereservation request, perhaps even higher than the reservation rate thatthe new stream implies. If the switching point in the new bitstream isat the middle of a “step”, the shortage of accumulated bits results in ahigh rate reservation. Thus, ideally, the switching point in the newvideo stream should be also at the “step edges”.

According to the above analyses, it might seem that the only chance tohave the optimum switching points for the two streams is where they havethe same “edge points”. Otherwise, either bits are wasted or onerequires a very high bit rate after bitstream switching. Upon furtherinvestigation, fortunately, we have found that, for the FOT curvesgenerated from different quantisers, do have similarly positioned “stepedges”, even if they are not absolutely the same. The reason is that, ina video sequence, complex pictures must cost more bits than normal onesno matter what quantiser is selected.

We have verified this with some experiments. In the experiment, a 140CIF Jacknbox video sequence was selected.

In the first experiment, we wish to clarify whether different videostreams based on the same video sequence approach their “step edges”together in their FOT. In FIG. 6, the similarity of FOT curves based ondifferent quantisers is shown. The curves correspond to quantiser stepsizes of 2, 3, 4, 10, 16 and 31 and are marked Q2, Q3, etc. It can beseen that with the quantiser step size increasing, the FOT becomes moreand more flat. However, they still have the “step edges” almost at thesame time. In addition, it should be noticed that, although the “edge”points in different FOTs are similar, they are not the exactly the same.FIGS. 7 and 8 disclose more details of different FOT curves at the “stepedges”. Although they are not the exactly same, it does little harm toswitch bitstream at an approximate place. The following experiment mayfurther verify it.

In the second experiment, we suppose that we are to switch the bitstream (Q16 stream) generated with a fixed quantiser 16 to a second bitstream (Q8 stream) generated by a fixed quantiser 8 at each frameinterval. In FIG. 9, we show some reservation curves if we respectivelyswitch bitstream at Frame 35, 42, 45, 49, 50 and 52. In FIG. 10, we showthe number of wasted bits when the bitstream is switched at differentframe intervals. FIGS. 9 and 10 should be sufficient to illustrate thedifference between switching streams at the “edge” point or at otherpoints. In FIG. 9, it can be seen that, if the switching points are farfrom the “step edges”, the required transmission rate is even higherthan the originally required transmission rate of the Q8 stream. It isjust as we analysed earlier. In this situation, one needs to achieve thenecessary bit accumulation within a short time in order to realise theproper display after bitstream switching. Thus, the requiredtransmission rate might be very high and it becomes unrealistic tocomplete such bitstream switching. On the other hand, if the bitstreamis switched near the “edge” points, there is no requirement for a veryhigh transmission rate to achieve the necessary bit accumulation becauseeach “step” in the FOT is independent. In FIG. 10, it can also beobserved that switching the bitstream near the “edge” points is moreadvisable. In the FOT curve, one always needs to pre-accumulate somebits for the following frames. If bitstream switching is applied, thepre-accumulated bits for the original stream will be of no use. Thesebits will be wasted.

In FIG. 10, it is easy to see that switching the bit stream only at“step edges” can waste no bits. The nearer it is to “step edges”, thefewer bits are wasted. Both from FIG. 9 and FIG. 10, it is verified thatthe best switching points in FOT are their “step edges”.

As for the question of precisely at what point to choose a switchingpoint for switching from a first to a second stream in practice, if thesteps of the two streams coincide, there is of course no ambiguity. Ifhowever there is a difference in timing, one can:

-   -   a) choose a step in the first stream (with ease of        implementation);    -   b) choose a step in the second stream (likewise easy to        implement);    -   c) choose the earlier of the two steps (thereby minimising        wasted bits);    -   d) choose the later of the two steps (thereby avoiding any        increase in reservation bandwidth for the second stream).

However in practice it matters little which option one selects since thedifferences between them in terms of performance are fairly small:indeed, if the chosen switching point is a few frames offset from the“step”, satisfactory performance can often be obtained.

In the light of this, the proposed method proceeds as follows (assumingoption (a) above):

i) Calculate the FOT for the first stream;

ii) Choose a switching point to coincide with a step of this FOT;

iii) Generate a transition frame;

iv) Calculate the FOT for the transition frame plus the remainder of thesecond stream;

v) Transmit the first stream up to the switching point;

vi) Transmit the transition frame plus the remainder of the secondstream.

In the event that option (b), (c) or (d) is used, then step i) wouldinvolve calculation of the FOT of the second stream too, and step (ii)would involve selection according to the option chose. Nevertheless, theFOT for the second stream still has to be recalculated in step 4. Notealso that the (re)calculation at step (iv) will automatically take intoaccount any corrections necessary due to non-coincidence of theswitching point with the step originally calculated for the secondstream, and/or due to the use of the “ceiling” or “floor” rates asdiscussed earlier.

Of course, more than one switching point may be chosen, if desired, forexample to revert to the first stream, or to switch to a third stream.

Although the switching issues have been discussed in the context ofsystems that are constrained to have a monotonically decreasing FOT,this approach to switching may also be used where this constraint is notapplied. Equally, it is also useful when switching from a high-qualitystream to a low-quality stream.

1. An automated machine implemented method of transmitting over acommunications network a digital data sequence of video signals whichhave been encoded using a compression algorithm such that the number ofcoded bits per frame is not constant, comprising using a programmedprocessor to: (a) partition the data sequence into segments; (b)determine a transmission bit rate for each segment over saidcommunication network; and (c) transmit the sequence of video signals ata plurality of the determined transmission bit rates, wherein thesequence is partitioned into segments such that the first segment isthat portion at the beginning of the sequence which has an averagenumber of coded bits per frame which is greater than or equal to theaverage number of coded bits per frame of any possible shorter portionstarting at the beginning of the sequence, and wherein each succeedingsegment is a portion immediately following the preceding segment whichhas an average number of coded bits per frame which is greater than orequal to the average number of coded bits per frame of any possibleshorter portion immediately following the preceding segment.
 2. Anautomated machine-implemented method of transmitting a digital sequenceof video signals which have been encoded using a compression algorithmsuch that the number of coded bits per frame is not constant, whereinthe source video had been coded into a first sequence and a secondsequence having respective different compression rates, said methodcomprising using a programmed processor to: (a) analyze at least one ofthe streams to divide it into segments; (b) select a switching point inthe vicinity of an intersegment transition identified at step (a); (c)if the first sequence was not analyzed in step (a), analyzed the firstsequence to divide it into segments; (d) determine a bit rate for the oreach segment of the first sequence up to the switching point; (e)transmit the signal of the first sequence up to the switching point atthe determined bit rate(s); (f) analyze a modified sequence whichincludes the second sequence from the switching point onwards, to divideit into segments; (g) determine a bit rate for segments of the modifiedsequence; and (h) transmit the signals of the modified sequence at thedetermined bit rate(s); wherein said analyses are each performed bydividing the relevant sequence into segments, wherein the first segmentis a portion at the beginning of the sequence which has an averagenumber of coded bits per frame which is greater than or equal to theaverage number of coded bits per frame of any shorter such portion, andwherein each succeeding segment is a portion immediately following thepreceding segment which has an average number of coded bits per framewhich is greater than or equal to the average number of coded bits perframe of any shorter such portion.
 3. A method according to claim 2 inwhich, in step (b), the switching point is selected to be in thevicinity of an intersegment transition of the first sequence.
 4. Amethod according to claim 2 in which, in step (b), the switching pointis selected to be in the vicinity of an intersegment transition of thesecond sequence.
 5. A method according to claim 2 in which, in step (a),both the first and the second sequence are analyzed, and in step (b),the switching point is selected to be in the vicinity of intersegmenttransitions of both the first and second sequences, or in the event thatthe transitions do not coincide, in the vicinity of the earlier of thetwo transitions.
 6. A method according to claim 2 in which, in step (a),both the first and the second sequence are analyzed, and in step (b),the switching point is selected to be in the vicinity of intersegmenttransitions of both the first and second sequences, or in the event thatthe transitions do not coincide, in the vicinity of the later of the twotransitions.
 7. A method according to claim 2 in which the switchingpoint is selected to occur within four frames of the relevanttransition.
 8. A method according to claim 7 in which the switchingpoint is selected to coincide with the relevant transition.
 9. A methodaccording to claim 2 in which the first sequence is encoded at a highercompression rate than the second sequence.
 10. A method according toclaim 9 in which the first sequence is encoded using a coarserquantization than the second sequence.
 11. A method according to claim 2in which the sequences are encoded using inter-frame coding, andincluding generating at the switching point a transitional sequenceconsisting of or commencing with a frame of the second sequence encodedusing a decoded frame of the first sequence as predictor, and in whichthe modified sequence comprises the transition sequence followed byframes of the second sequence.
 12. A method according to claim 1 whereinthe first segment of the or a sequence is that portion at the beginningof the sequence which has an average number of coded bits per framewhich is greater than or equal to the average number of coded bits perframe of any possible such portion not exceeding a maximum predeterminedlength, and wherein each succeeding segment is that portion immediatelyfollowing the preceding segment which has an average number of codedbits per frame which is greater than or equal to the average number ofcoded bits per frame of any possible such portion not exceeding saidmaximum predetermined length.
 13. A method according to claim 1 in whichthe bit rate determined for each of at least the later segments of theor a sequence is a number of bits per frame period equal to the averagecoded bits per frame for that segment.
 14. A method according to claim 1in which the bit rate determined for each of at least the later segmentsof the or a sequence is a number of bits per frame period equal to thelowest one of a set of permitted bit rates that is greater than or equalto a nominal rate for that segment, said nominal rate being the averagecoded bits per frame for that segment less any reduction permitted as aconsequence of the determined bit rate for the preceding sequence beingin excess of the nominal rate for that preceding segment.
 15. A methodaccording to claim 1 in which the bit rate determined for each of atleast the later segments of the or a sequence is a number of bits perframe period equal to the highest one of a set of permitted bit ratesthat is less than or equal to a nominal rate for that segment, saidnominal rate being the average coded bits per frame for that segmentplus any increase necessitated as a consequence of the determined bitrate for the following sequence being less than the nominal rate forthat preceding segment.
 16. An automated machine-implemented method oftransmitting a digital sequence of video signals which have been encodedusing a compression algorithm such that the number of coded bits perframe is not constant, comprising using a programmed processor to: (a)divide the sequence into segments, wherein the first segment is aportion at the beginning of the sequence which has an average number ofcoded bits per frame which is greater than or equal to the averagenumber of coded bits per frame of any shorter such portion, and whereineach succeeding segment is a portion immediately following the precedingsegment which has an average number of coded bits per frame which isgreater than or equal to the average number of coded bits per frame ofany shorter such portion; (b) determine a bit rate for each segment; (c)transmit the signals at the determined bit rates wherein the firstsegment of the or a sequence is that portion at the beginning of thesequence which has an average number of coded bits per frame which isgreater than or equal to the average number of coded bits per frame ofany possible such portion, and wherein each succeeding segment is thatportion immediately following the preceding segment which has an averagenumber of coded bits per frame which is greater than or equal to theaverage number of coded bits per frame of any possible such portion inwhich the bit rate determined for each of at least the later segments ofthe or a sequence is a number of bits per frame period equal to thelarger of: (i) the lowest one of a set of permitted bit rates that isgreater than or equal to a nominal rate for that segment, said nominalrate being the average coded bits per frame for that segment less anyreduction permitted as a consequence of the determined bit rate for thepreceding sequence being in excess of the nominal rate for thatpreceding segment; and (ii) the lowest one of the set of permitted bitrates that is greater than or equal to the average coded bits per framefor the following segment.
 17. An automated machine-implemented methodof transmitting a digital sequence of video signals which have beenencoded using a compression algorithm such that the number of coded bitsper frame is not constant, comprising using a programmed processor to:(a) divide the sequence into segments, wherein the first segment is aportion at the beginning of the sequence which has an average number ofcoded bits per frame which is greater than or equal to the averagenumber of coded bits per frame of any shorter such portion, and whereineach succeeding segment is a portion immediately following the precedingsegment which has an average number of coded bits per frame which isgreater than or equal to the average number of coded bits per frame ofany shorter such portion; (b) determine a bit rate for each segment; (c)transmit the signals at the determined bit rates wherein the firstsegment of the or a sequence is that portion at the beginning of thesequence which has an average number of coded bits per frame which isgreater than or equal to the average number of coded bits per frame ofany possible such portion, and wherein each succeeding segment is thatportion immediately following the preceding segment which has an averagenumber of coded bits per frame which is greater than or equal to theaverage number of coded bits per frame of any possible such portion; inwhich the bit rate determined for each of at least the later segments ofthe or a sequence is a number of bits per frame period equal to thelower of: (i) the highest one of a set of permitted bit rates that isless than or equal to a nominal rate for that segment, said nominal ratebeing the average coded bits per frame for that segment plus anyincrease necessitated as a consequence of the determined bit rate forthe following sequence being less than the nominal rate for thatpreceding segment: and (ii) the highest one of the set of permitted bitrates that is less than or equal to the average coded bits per frame forthe preceding segment.
 18. A method according to claim 1, includingtransmitting to a telecommunications network commands requestingreservation of said determined bit rates.
 19. A method as claimed inclaim 1, wherein the sequence of video signals is transmitted at saidplurality of determined transmission rates such that each segment'sdetermined transmission rate is greater than or equal to the averagerate at which bits per frame are generated in said segment unless at theend of the segment where the maximum average generated bits per frameoccurs.
 20. A method as claimed in claim 1, wherein the transmission bitrate (Rm) for each segment over said communications network is notgreater than the bit rate for the immediately preceding segment.
 21. Amethod as claimed in claim 1, wherein the average coded bit rate for arespective segment is greater than or equal to the average for anyshorter portion of the video sequence beginning at the start of therespective segment and less than the average coded bit rate for somelonger portion starting at the same point.